package config

// aes CBC加密
const (
	KEY          = "2998b4c9705bef98"
	ENCRYPT_OPEN = false // true打开 false关闭
	HASH_KEY     = "d47268e9db2e9aa3"
	RANDOM       = 12558787
)

// 错误码
const (
	OK         = 0  // 成功
	TIMEOUT    = 1  // 超时
	FAIL       = 2  // 失败
	INVALID    = 3  // 无效
	BOUND      = 4  // 越界
	OVERRUN    = 5  // 超限
	DBERROR    = 6  // DB错误
	PROTO      = 7  // 协议错误
	FULL       = 8  // 爆满
	CHECK      = 9  // session验证失败
	NOTFOUND   = 10 // 未找到
	CFGERROR   = 11 // 配置错误
	NOTENOUGH  = 12 // 库存不足
	JSONERROR  = 13 // JSON格式化错误
	INDEXERROR = 14 // 索引错误
	PARAMERROR = 15 // 参数错误
	REPEAT     = 16 // 重复操作
	UNMARSHAL  = 17 // 解析数据错误

	CONN_SERVER_ERROR   = 1001 // 业务服务器连接已断开
	BATTLE_OVER_ERROR   = 1002 // 前后端战斗结果不一致
	BATTLE_ACTION_ERROR = 1003 // action数量超限
	BATTLE_ACTION_PARAM = 1004 // action参数错误

	PROTO_ERROR       = 10001 // 协议错误
	FREQ_TOO_HIGH     = 10002 // 频率过快
	SESSION_NOT_FOUND = 10003 // 会话不存在
	SERVER_ERROR      = 10004 // 服务器内部错误
	STOP_SERVER       = 10005 // 停服
	MAX_PLAYER        = 10006 // 服务器已满
	ALREADY_LOGIN     = 10007 // 已登录
	LOGIN_INIT_FAIL   = 10008 // 初始化数据失败
	SERVER_PANIC      = 10009 // 致命错误
	CONFIG_NOT_FOUND  = 10010 // 配置不存在
	OBJECT_NOT_FOUND  = 10011 // 对象不存在
	ITEM_NOT_ENOUGH   = 10012 // 道具不足
	ACTIVE_TIMEOUT    = 10013 // 活动超时
	STORE_CAP_MAX     = 10014 // 背包已满
	LEVEL_NOT_ENOUGH  = 10015 // 声望等级不足
)

/************************************************** 协议 **************************************************/

// 万位(1请求2响应 无 特殊命令) 千位(9战斗服)

// 基础
const (
	SC_ERROR = 9000 // 服务器严重错误
	CSC_Chat_Msg = 9001 // 聊天消息

	SC_Reconnect = 9994 // 客户端重连
	CS_Reconnect = 9995 // 客户端重连

	SC_Kick_User    = 9996 // 踢用户下线
	SS_User_Online	= 9997 // 用户上线
	SS_User_Offline = 9998 // 用户离线
	CSC_Heart       = 9999 // 心跳 没有protobuf数据 只有包头

)

// 请求数据 Fetch类型
const (
	Fetch_type_all    int32 = iota // 0 用户全部信息
	Fetch_type_base                // 1 用户基础信息
	Fetch_type_item                // 2 用户道具
	Fetch_type_role                // 3 用户角色
	Fetch_type_scene               // 4 用户场景
	Fetch_type_task                // 5 用户任务
	Fetch_type_client              // 6 客户端数据
	Fetch_type_equip               // 7 装备数据
	Fetch_type_team                // 8 队伍数据
	Fetch_type_weapon              // 9 武器数据
)

// 道具协议操作类型
const (
	ItemActionTypeUse = 1 // 使用
	ItemActionTypeDec = 2 // 分解
)

// 角色协议操作类型
const (
	ROLE_ACTION_OP_TYPE_UPGRADE  = 1 // 升级
	ROLE_ACTION_OP_TYPE_PROMOTE  = 2 // 升阶
	ROLE_ACTION_OP_TYPE_RISESTAR = 3 // 升星
)

const (
	BATTLE_BEGIN     = 10000 + iota
	SC_CREATE_BATTLE // 创建战斗返回
	CS_CREATE_BATTLE // 请求创建战斗

	CS_BATTLE_OVER // 请求战斗结束
	SC_BATTLE_OVER // 战斗结束返回

	CS_BATTLE_ACTION // 战斗操作-出卡
	SC_BATTLE_ACTION // 战斗操作返回

	CS_BATTLE_ACTION_RESET // 战斗操作重置
	SC_BATTLE_ACTION_RESET // 战斗操作重置返回
	BATTLE_END
)

const (
	NORMAL_BEGIN = 20000 + iota

	CS_Login  // 请求登录
	SC_Login  // 登录返回
	CS_Logout // 登出请求
	SC_Logout // 登出响应

	SC_ServerErrorLogNtf // 服务器错误日志通知
	SC_OpenFuncNtf       // 已开放功能通知

	CS_FETCH // 请求数据
	SC_FETCH

	CS_SetClientDataReq // 客户端数据存档请求
	SC_SetClientDataRsp // 客户端数据存档响应

	CS_GmReq // GM命令请求
	SC_GmRsp // GM命令响应

	CS_EnterSceneReq  // 进入场景请求
	SC_EnterSceneResp // 进入场景请求

	CS_SceneDataReq  // 请求场景数据
	SC_SceneDataResp // 请求场景数据

	SC_SceneDataUpDate // 场景数据更新

	CS_GadgetInteractReq // 物件交互请求
	SC_GadgetInteractRsp // 物件交互响应

	CS_NpcTalkReq // npc对话请求
	SC_NpcTalkRsp // npc对话响应

	CS_FinishTimelineReq // 观看剧情请求
	SC_FinishTimelineRsp // 观看剧情响应

	CS_GetScenePointReq // 获取场景传送点请求
	SC_GetScenePointRsp // 获取场景传送点响应

	CS_SceneDashFightReq // 场景冲刺战斗请求
	SC_SceneDashFightRsp // 场景冲刺战斗响应

	SC_SceneUnlockNtf     // 场景解锁通知
	SC_SceneDashUpdateNtf // 场景冲刺数据更新通知

	CS_ItemActionReq // 道具操作请求
	SC_ItemActionRsp // 道具操作响应

	SC_ItemChangeNtf // 道具背包更新通知
	SC_ResChangeNtf  // 资源更新通知

	SC_QuestUpdateNtf       // 子任务更新通知
	SC_ParentQuestUpdateNtf // 父任务更新通知

	CS_QuestFinishReq
	CS_QuestFinishResp

	CS_ROLE_ACTION // 角色操作请求
	SC_ROLE_ACTION // 角色操作响应

	SC_RoleUpdateNtf // 角色更新通知

	CS_RoleTalentUnlockReq // 天赋解锁请求
	SC_RoleTalentUnlockRsp // 天赋解锁响应

	CS_RoleTalentUpgradeReq // 天赋升级请求
	SC_RoleTalentUpgradeRsp // 天赋升级响应

	CS_EquipUpgradeReq // 装备升级请求
	SC_EquipUpgradeRsp // 装备升级响应

	CS_EquipAffixRemakeReq // 装备词条洗练请求
	SC_EquipAffixRemakeRsp // 装备词条洗练响应

	CS_EquipWearReq // 装备穿戴请求
	SC_EquipWearRsp // 装备穿戴响应

	CS_EquipJewelWearReq // 装备宝石镶嵌请求
	SC_EquipJewelWearRsp // 装备宝石镶嵌响应

	SC_EquipUpdateNtf // 装备更新通知

	SC_EquipJewelUpdateNtf // 装备宝石更新通知

	SC_EquipDeleteNtf // 装备删除通知

	CS_EquipComposeReq // 装备合成请求
	SC_EquipComposeRsp // 装备合成响应

	CS_TeamRoleChangeReq // 队伍角色修改请求
	CS_TeamNameChangeReq // 队伍名称修改请求
	CS_TeamSetActiveReq  // 活跃队伍设置请求

	SC_TeamUpdateNtf // 队伍更新通知

	CS_TeamUnlockReq // 队伍解锁请求
	SC_TeamUnlockRsp // 队伍解锁响应

	SC_CaptainSkillDataNtf // 队长技能数据通知

	CS_CaptainSkillUnlockReq // 队长技能解锁请求
	SC_CaptainSkillUnlockRsp // 队长技能解锁响应

	CS_CaptainSkillUpgradeReq // 队长技能升级请求
	SC_CaptainSkillUpgradeRsp // 队长技能升级响应

	CS_CaptainSkillChangeReq // 队长技能切换请求
	SC_CaptainSkillChangeRsp // 队长技能切换响应

	CS_ShopDataReq // 商店数据请求
	SC_ShopDataRsp // 商店数据响应

	CS_ShopBuyReq // 商店购买请求
	SC_ShopBuyRsp // 商店购买响应

	CS_GetAllMailReq // 获取全部邮件请求
	SC_GetAllMailRsp // 获取全部邮件响应

	CS_GetMailItemReq // 领取邮件道具请求
	SC_GetMailItemRsp // 领取邮件道具响应

	CS_DelMailReq // 删除邮件请求
	SC_DelMailRsp // 删除邮件响应

	CS_ReadMailReq // 邮件已读请求
	SC_ReadMailRsp // 邮件已读响应

	SC_MailAddNotify // 邮件新增通知

	CS_GetGachaInfoReq // 获取卡池信息请求
	SC_GetGachaInfoRsp // 获取卡池信息响应

	CS_DoGachaReq // 抽卡请求
	SC_DoGachaRsp // 抽卡响应

	CS_GachaWishReq // 卡池许愿请求
	SC_GachaWishRsp // 卡池许愿响应

	CS_GachaHistoryReq // 卡池历史记录请求
	SC_GachaHistoryRsp // 卡池历史记录响应

	SC_CodexDataFullNotify   // 图鉴数据通知
	SC_CodexDataUpdateNotify // 图鉴数据更新通知

	CS_CodexRewardTakeReq // 图鉴奖励领取请求
	SC_CodexRewardTakeRsp // 图鉴奖励领取响应

	CS_GetCodexRoleFightPropReq // 获取图鉴角色战斗属性请求
	SC_GetCodexRoleFightPropRsp // 获取图鉴角色战斗属性响应

	CS_WeaponWearReq // 武器穿戴请求
	SC_WeaponWearRsp // 武器穿戴响应

	SC_WeaponUpdateNtf // 武器更新通知

	SC_WeaponDeleteNtf // 武器删除通知

	CS_WeaponUpgradeReq // 武器升级请求
	SC_WeaponUpgradeRsp // 武器升级响应

	CS_WeaponPromoteReq // 武器升阶请求
	SC_WeaponPromoteRsp // 武器升阶响应

	CS_WeaponStarReq // 武器升星请求
	SC_WeaponStarRsp // 武器升星响应

	CS_WeaponLockReq // 武器锁定请求
	SC_WeaponLockRsp // 武器锁定响应

	CS_HomeDataReq // 家园数据请求
	SC_HomeDataRsp // 家园数据响应

	CS_HomeBuildingEditReq // 建筑编辑请求
	SC_HomeBuildingEditRsp // 建筑编辑响应

	CS_HomeFarmLandOpReq // 家园农田操作请求
	SC_HomeFarmLandOpRsp // 家园农田操作响应

	CS_HomeFactoryOpReq // 家园工厂操作请求
	SC_HomeFactoryOpRsp // 家园工厂操作响应

	CS_HomeBuildingUpgradeReq // 建筑升级请求
	SC_HomeBuildingUpgradeRsp // 建筑升级响应

	CS_ActivityDataReq // 活动数据请求
	SC_ActivityDataRsp // 活动数据响应

	CS_DungeonQuickFightReq // 地牢扫荡请求
	SC_DungeonQuickFightRsp // 地牢扫荡响应

	CS_TaskRewardTakeReq // 任务领奖请求
	SC_TaskRewardTakeRsp // 任务领奖响应

	CS_TaskPointRewardTakeReq // 任务活跃点领奖请求
	SC_TaskPointRewardTakeRsp // 任务活跃点领奖响应

	SC_TaskDataUpdateNtf // 活动任务数据更新

	CS_PayActivityInfoReq // 付费活动数据请求
	SC_PayActivityInfoRsp // 付费活动数据响应

	CS_SignInRewardTakeReq // 签到奖励领取请求
	SC_SignInRewardTakeRsp // 签到奖励领取响应

	CS_ZpReq // 转盘抽奖请求
	SC_ZpRsp // 转盘抽奖响应

	CS_ZpBdRewardTakeReq // 转盘保底领奖请求
	SC_ZpBdRewardTakeRsp // 转盘保底领奖响应

	CS_PayActivityTaskRewardTakeReq // 付费活动任务领奖请求
	SC_PayActivityTaskRewardTakeRsp // 付费活动任务领奖响应

	CS_FishCodexReq // 钓鱼图鉴请求
	SC_FishCodexRsp // 钓鱼图鉴响应

	CS_FishReq // 钓鱼请求
	SC_FishRsp // 钓鱼响应

	CS_FishResultReq // 钓鱼结果请求
	SC_FishResultRsp // 钓鱼结果响应

	CS_FishOpReq // 钓鱼操作请求
	SC_FishOpRsp // 钓鱼操作响应

	CS_OnDayChangeReq
	SC_OnDayChangeRsp

	NORMAL_END
)

/************************************************** 枚举 **************************************************/

// 任务大类型
const (
	QUEST_TYPE_MAIN  = 1 // 主线任务
	QUEST_TYPE_SIDE  = 2 // 支线任务
	QUEST_TYPE_DAILY = 3 // 每日任务
)

// 任务状态
const (
	QUEST_STATE_UNF = 1 // 未完成
	QUEST_STATE_FIN = 2 // 已完成
)

// 增加战斗属性类型
const (
	ADD_FIGHT_PROP_TYPE_VALUE          = 1 // 数值
	ADD_FIGHT_PROP_TYPE_PERCENT        = 2 // 百分比
	ADD_FIGHT_PROP_TYPE_CLIENT_PERCENT = 3 // 客户端百分比
)

// 战斗属性类型
const (
	FIGHT_PROP_ATTACK             = 2  // 攻击力
	FIGHT_PROP_DEFENSE            = 3  // 防御力
	FIGHT_PROP_CHARGE_EFFICIENCY  = 5  // 充能效率
	FIGHT_PROP_CRITICAL           = 6  // 暴击率
	FIGHT_PROP_ANTI_CRITICAL      = 7  // 暴击抵抗
	FIGHT_PROP_CRITICAL_HURT      = 8  // 暴击伤害
	FIGHT_PROP_ANTI_CRITICAL_HURT = 9  // 暴伤抵抗
	FIGHT_PROP_DEFENSE_PENETRATE  = 30 // 防御穿透值
	FIGHT_PROP_FIRE_ADD_HURT      = 51 // 火属性增伤
	FIGHT_PROP_FIRE_SUB_HURT      = 11 // 火属性抵抗
	FIGHT_PROP_WIND_ADD_HURT      = 54 // 风属性增伤
	FIGHT_PROP_WIND_SUB_HURT      = 14 // 风属性抵抗
	FIGHT_PROP_ICE_ADD_HURT       = 53 // 冰属性增伤
	FIGHT_PROP_ICE_SUB_HURT       = 13 // 冰属性抵抗
	FIGHT_PROP_DARK_ADD_HURT      = 55 // 暗属性增伤
	FIGHT_PROP_DARK_SUB_HURT      = 15 // 暗属性抵抗

	FIGHT_PROP_HP           = 1   // 生命值
	FIGHT_PROP_CUR_HP       = 112 // 当前生命值
	FIGHT_PROP_ENERGY       = 4   // 怒气值
	FIGHT_PROP_CUR_ENERGY   = 113 // 当前怒气值
	FIGHT_PROP_WEAPON_POWER = 99  // 平均装等
	FIGHT_PROP_ENERGY_REC   = 101 // 怒气值回复
	FIGHT_PROP_SPEED        = 102 // 速度值
)
